package com.anjubao.parking.municipal.parkinglot.model;

import com.anjubao.parking.municipal.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 停车记录表
 *
 * @author zhuchunfeng
 */
@Getter
@Setter
@TableName("parking_record")
@ApiModel(value="ParkingRecord",description = "停车记录表")
public class ParkingRecord extends BaseEntity<ParkingRecord>{

    @TableField(value="parking_record_id")
    @ApiModelProperty(name="parkingRecordId",value = "进出记录ID")
    private Long parkingRecordId;

    @TableField(value="parking_record_code")
    @ApiModelProperty(name="parkingRecordCode",value = "进出记录code code生成规则为200(3位)+yyMMddHHmm(10位)+parking_record_id(19位)")
    private String parkingRecordCode;

    @TableField(value="remote_parking_record_id")
    @ApiModelProperty(name="remoteParkingRecordId",value = "接入车场进出记录ID")
    private String remoteParkingRecordId;

    @TableField(value="system_type")
    @ApiModelProperty(name="systemType",value = "系统类型(1:路内停车系统 2:封闭式停车系统)")
    private Integer systemType;

    @TableField(value="parking_lot_id")
    @ApiModelProperty(name="parkingLotId",value = "停车场ID")
    private Long parkingLotId;

    @TableField(value="parking_lot_code")
    @ApiModelProperty(name="parkingLotCode",value = "停车场编号,code生成规则为100(3位)+yyMMddHHmm(10位)+id(19位)")
    private String parkingLotCode;

    @TableField(value="parking_lot_name")
    @ApiModelProperty(name="parkingLotName",value = "停车场名称")
    private String parkingLotName;

    @TableField(value="parking_lot_province_id")
    @ApiModelProperty(name="parkingLotProvinceId",value = "停车场所在省份ID")
    private Integer parkingLotProvinceId;

    @TableField(value="parking_lot_province_name")
    @ApiModelProperty(name="parkingLotProvinceName",value = "停车场所在省份名称")
    private String parkingLotProvinceName;

    @TableField(value="parking_lot_city_id")
    @ApiModelProperty(name="parkingLotCityId",value = "停车场所在城市ID")
    private Integer parkingLotCityId;

    @TableField(value="parking_lot_city_name")
    @ApiModelProperty(name="parkingLotCityName",value = "停车场所在城市名称")
    private String parkingLotCityName;

    @TableField(value="parking_lot_district_id")
    @ApiModelProperty(name="parkingLotDistrictId",value = "停车场所在区域ID")
    private Integer parkingLotDistrictId;

    @TableField(value="parking_lot_district_name")
    @ApiModelProperty(name="parkingLotDistrictName",value = "停车场所在区域名称")
    private String parkingLotDistrictName;

    @TableField(value="parking_lot_latitude")
    @ApiModelProperty(name="parkingLotLatitude",value = "停车场对应地图系统上的纬度坐标")
    private BigDecimal parkingLotLatitude;

    @TableField(value="parking_lot_longitude")
    @ApiModelProperty(name="parkingLotLongitude",value = "停车场对应地图系统上的经度坐标")
    private BigDecimal parkingLotLongitude;

    @TableField(value="parking_lot_slot_id")
    @ApiModelProperty(name="parkingLotSlotId",value = "停车场停车位ID")
    private Long parkingLotSlotId;

    @TableField(value="parking_lot_slot_code")
    @ApiModelProperty(name="parkingLotSlotCode",value = "停车场停车位编号")
    private String parkingLotSlotCode;

    @TableField(value="parking_lot_slot_name")
    @ApiModelProperty(name="parkingLotSlotName",value = "停车场停车位名称")
    private String parkingLotSlotName;

    @TableField(value="plate_number")
    @ApiModelProperty(name="plateNumber",value = "车牌号码（车牌识别）")
    private String plateNumber;

    @TableField(value="parking_type")
    @ApiModelProperty(name="parkingType",value = "停车类型(0：临时车 1：月卡车 3：访客车 4：预约车 5： 特殊车辆 6：其它车辆)")
    private Integer parkingType;

    @TableField(value="customer_name")
    @ApiModelProperty(name="customerName",value = "车主姓名")
    private String customerName;

    @TableField(value="customer_contact_number")
    @ApiModelProperty(name="customerContactNumber",value = "车主手机号码")
    private String customerContactNumber;

    @TableField(value="vehicle_type")
    @ApiModelProperty(name="vehicleType",value = "车辆类型(1:小客车 2:大客车 3:货车)")
    private Integer vehicleType;

    @TableField(value="enter_snapshot_url")
    @ApiModelProperty(name="enterSnapshotUrl",value = "入场图片")
    private String enterSnapshotUrl;

    @TableField(value="enter_time")
    @ApiModelProperty(name="enterTime",value = "入场时间")
    private LocalDateTime enterTime;

    @TableField(value="enter_port")
    @ApiModelProperty(name="enterPort",value = "入口名称")
    private String enterPort;

    @TableField(value="leave_snapshot_url")
    @ApiModelProperty(name="leaveSnapshotUrl",value = "出场图片")
    private String leaveSnapshotUrl;

    @TableField(value="leave_time")
    @ApiModelProperty(name="leaveTime",value = "出场时间")
    private LocalDateTime leaveTime;

    @TableField(value="leave_port")
    @ApiModelProperty(name="leavePort",value = "出口名称")
    private String leavePort;

    @TableField(value="leave_parking_duration")
    @ApiModelProperty(name="leaveParkingDuration",value = "停车时长(单位：秒)")
    private Integer leaveParkingDuration;

    @TableField(value="fee_total")
    @ApiModelProperty(name="feeTotal",value = "应收总金额(单位：分)")
    private Integer feeTotal;

    @TableField(value="paid_total")
    @ApiModelProperty(name="paidTotal",value = "实收总金额(单位：分)")
    private Integer paidTotal;

    @TableField(value="discount_total")
    @ApiModelProperty(name="discountTotal",value = "优惠金额(单位：分)")
    private Integer discountTotal;

    @TableField(value="is_battery_charged")
    @ApiModelProperty(name="isBatteryCharged",value = "是否充电了？0：未充电，1:充电了")
    private Integer isBatteryCharged;

    @TableField(value="battery_charging_duration")
    @ApiModelProperty(name="batteryChargingDuration",value = "充电费用(独立的，与停车费用无关)")
    private Integer batteryChargingDuration;

    @TableField(value="card_id")
    @ApiModelProperty(name="cardId",value = "卡号（取卡出入场）")
    private String cardId;

    @TableField(value="parking_detect_type")
    @ApiModelProperty(name="parkingDetectType",value = "默认值:-1 ; 地磁方案:0 ;视频桩方案: 1")
    private Integer parkingDetectType;

    @TableField(value="revision")
    @ApiModelProperty(name="revision",value = "乐观锁")
    private Integer revision;


}